home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / C26 / RemoveGroup.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-25  |  932 b   |  31 lines

  1. //: C26:RemoveGroup.cpp
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. // Remove a group of names from a list
  7. #include "readLower.h"
  8. #include "../require.h"
  9. #include <list>
  10. using namespace std;
  11.  
  12. typedef list<string> Container;
  13.  
  14. int main(int argc, char* argv[]) {
  15.   requireArgs(argc, 3);
  16.   Container names, removals;
  17.   readLower(argv[1], names);
  18.   readLower(argv[2], removals);
  19.   long original = names.size();
  20.   Container::iterator rmit = removals.begin();
  21.   while(rmit != removals.end())
  22.     names.remove(*rmit++); // Removes all matches
  23.   ofstream out(argv[3]);
  24.   assure(out, argv[3]);
  25.   copy(names.begin(), names.end(),
  26.        ostream_iterator<string>(out,"\n"));
  27.   long removed = original - names.size();
  28.   cout << "On removal list: " << removals.size()
  29.     << "\n Removed: " << removed << endl;  
  30. } ///:~
  31.